//导入用户集合构造函数
const {
    User
} = require("../../model/use");
const bcrypt = require("bcrypt");
module.exports = async (req, res) => {
    //接受请求参数  
    //res.send(req.body);
    const {
        email,
        password
    } = req.body;
    // 如果用户没有输入邮件地址
    if (email.trim().length == 0 || password.trim().length == 0) {
        return res.status(400).render("admin/error", {
            msg: "邮件地址或者密码错误"
        });
    }
    //根据邮箱地址查询用户信息
    // 如果查询到了用户，user变量的值是对象类型，对象中存储的是用户信息
    // 如果没有查询到用户user变量为空
    let user = await User.findOne({
        email
    });
    // 查询到了用户
    if (user) {
        //将客户端传递过来的密码和用户信息中的密码进行比对
        // true 比对成功
        // false 比对失败
        const isValid = bcrypt.compare(password, user.password);
        if (isValid) {
            //将用户存储在请求对象中
            req.session.username = user.username;
            // res.send("登录成功");
            //重定向用户列表页面
            req.app.locals.userInfo = user;
            res.redirect('/admin/user');
        } else {
            // render方法渲染页面与数据
            res.status(400).render("admin/error", {
                msg: "邮件地址或者密码错误"
            });
        }
    } else {
        //如果没有查询到用户
        res.status(400).render("admin/error", {
            msg: "邮件地址或者密码错误"
        });
    }
}